package File_IO;

import java.io.*;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-02-09
 * Time: 15:42
 */

// 普通文件得拷贝(从一个文件中一边读取一边写入到另一个文件中)
public class IODemo8 {
    public static void main(String[] args) {
        // 目标路径 和 源路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要拷贝得文件: ");
        String srcPath = scanner.next();
        System.out.println("请输入要拷贝得地方: ");
        String desPath = scanner.next();

        // 以源头路径创建文件实例
        File srcFile = new File(srcPath);

        if (!srcFile.isFile()) {
            // isFile() 方法未测试该抽象路径表示得文件是否未普通文件
            // 如果不是普通文件(为目录)或者为该文件不存在
            System.out.println("当前输入得拷贝文件路径错误!");
            return;
        }

        // 如果没有问题 确认为普通文件
        try (InputStream inputStream = new FileInputStream(srcFile);
             // inputStream 文件不存在时抛异常无法读取
             // OutputStream 文件不存在时, 写文件自动创建
             OutputStream outputStream = new FileOutputStream(desPath)) {

            // 进行读写文件操作
            while (true) {
                int b = inputStream.read();
                if (b == -1) {
                    break;
                }
                outputStream.write(b);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}
